#ifndef NODE_H
#define NODE_H

#include <QString>
#include <QList>

class Node
{
public:
    enum Type { Root, OrExpression, AndExpression, NotExpression, Atom,
                Identifier, Operator, Punctuator };
     // 相当于在class中定义了几个整形常量 int ROOT = 0; int OrExpression = 1; AndExpression = 2;  ....
     // Type是这个枚举的名字，也是这个集合的类型。该类型创建的实例，只能是他们其中一个

    Node(Type type, const QString &str = "");
    ~Node();

    Type type;
    QString str;
    Node *parent;
    QList<Node *> children;
};

#endif // NODE_H
